Reengineering Large-Scale Polylingual Systems
نویسندگان
چکیده
Building systems from existing applications written in two or more languages is common practice. Such systems are polylingual. Polylingual systems are relatively easy to build when the number of APIs needed to achieve language interoperability is small. However, when the number of distinct APIs become large, maintaining and evolving them becomes a notoriously difficult task. We present a practical and effective process to reengineer large-scale polylingual systems. We offer a programming model that is based on the uniform abstraction of polylingual systems as graphs and the use of path expressions for traversing and manipulating data. This model enables us to achieve multiple benefits, including coding simplicity and uniformity (where neither was present before) that facilitate further reverse engineering. By performing control and data flow analyses of polylingual systems we infer the schemas used by all participating programs and the actions performed by each program on others. Finally, we describe a tool called FORTRESS that automates our reverse engineering process. The contribution of this paper is a process that allows programmers to reverse engineer foreign type systems and their instances semiautomatically at the highest level of design. We know of no other approach with comparable benefits.
منابع مشابه
Reengineering Large - Scale Polylingual Systems ( Extended
Building systems from existing applications writConsider an architecture for polylingual systems as shown in ten in two or more languages is common practice. Such systems are polylingual. Polylingual systems are relatively easy to build when the number of APIs needed to achieve language interoperability is small. However, when the number of distinct APIs become large, maintaining and evolving t...
متن کاملPolyspin: Support for Polylingual Persistence, Interoperability and Naming in Object-oriented Databases
Heterogeneity in information systems gives rise to a range of interoperability problems. For heterogeneous information systems based on traditional database technology, the dominant interoperability problems are multiple database (or schema) integration and multilingual access to individual databases. While similar interoperability problems can arise in heterogeneous information systems based o...
متن کاملToward Painless Polylingual Persistence
Heterogeneity in persistent object systems gives rise to a range of interoperabil-ity problems. For instance, a given object-oriented database (OODB) may contain data objects originally deened, created and persistently stored using the capabilities provided by several distinct programming languages, and an application may need to uniformly process those data objects. We call such a database pol...
متن کاملNetwork Of Reengineering Expertise – NOREX
In an information technology society that is increasingly relying on software, software productivity and quality continue to fall short of expectations: software systems suffer from signs of aging as they are adapted to changing requirements. The main reason for this problem is that software maintenance and reengineering is still undervalued in traditional software development processes. The on...
متن کاملSoftware Reengineering for Evolution
Software evolution is the process of conducting continuous software reengineering. Reengineering implies a single change cycle, but evolution can go on forever. In other words, to a large extent, software evolution is repeated software reengineering. Therefore, this book discusses many technical details of reengineering. Any computing system, including hardware and software systems, will inevit...
متن کامل